home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / NVRAM.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  3KB  |  134 lines

  1. /*
  2.      File:        NVRAM.h
  3.  
  4.      Contains:    NVRAM FPI data structures and function prototypes 
  5.  
  6.      Version:    Technology:    
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __NVRAM__
  19. #define __NVRAM__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __KERNEL__
  25. #include <Kernel.h>
  26. #endif
  27. #ifndef __OSUTILS__
  28. #include <OSUtils.h>
  29. #endif
  30. #ifndef __ERRORS__
  31. #include <Errors.h>
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT_SUPPORTED
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_ALIGN_SUPPORTED
  43. #pragma options align=mac68k
  44. #endif
  45.  
  46. #if FOR_SYSTEM8_PREEMPTIVE
  47. /*
  48.     NVRAM Error Return Code
  49. */
  50.  
  51. enum {
  52.     NVRAMnoErr                    = noErr,
  53.     NVRAMInvalidParm            = paramErr,
  54.     NVRAMReadFailed                = readErr,
  55.     NVRAMWriteFailed            = writErr,
  56.     NVRAMServiceFailed            = statusErr,
  57.     NVRAMInstallFailed            = dInstErr
  58. };
  59.  
  60. /*
  61.     NVRAM Request Code
  62. */
  63.  
  64. enum {
  65.     kNVRAMpramInitMsg            = 1,
  66.     kNVRAMpramReadMsg            = 2,                            /* This include read access to System Parameters and XPRAM */
  67.     kNVRAMpramWriteMsg            = 3,                            /* This include write access to System Parameters and XPRAM*/
  68.     kNVRAMrpramReadMsg            = 4,
  69.     kNVRAMrpramWriteMsg            = 5,
  70.     kNVRAMReadMsg                = 6,
  71.     kNVRAMWriteMsg                = 7,
  72.     kNVRAMOpenFirmwareReadMsg    = 8,
  73.     kNVRAMOpenFirmwareWriteMsg    = 9,
  74.     kNVRAMNameRegistryReadMsg    = 10,
  75.     kNVRAMNameRegistryWriteMsg    = 11,
  76.     kNVRAMRqstLimit                = 12
  77. };
  78.  
  79. /*
  80.     Function    :    NVRAMFPIInit
  81.     
  82.     Description    :    Find the Object Id property in the family-tree
  83.                     This is essential for message passing between FPI and kernel server task.
  84.                     This is the main entry for the NVRAMFPI library, and will be called when
  85.                     FPI library is loaded by the CFM.
  86. */
  87. extern OSStatus NVRAMFPIInit(void );
  88.  
  89. /*
  90.     Function    :    NVRAMAccessSync
  91.     
  92.     Description    :    This is common entry point for synchronous access to NVRAM hardware.
  93.                     This is an export in the NVRAMFPI library.
  94. */
  95. extern OSStatus NVRAMAccessSync(UInt32 offset, Byte *accessData, ByteCount sizeofAccess, UInt32 typeOfRequest);
  96.  
  97. /*
  98.     Function    :    NVRAMAccessAsync
  99.     
  100.     Description    :    This is common entry point for asynchronous access to NVRAM hardware
  101.                     This is an export in the NVRAMFPI library.
  102. */
  103. extern OSStatus NVRAMAccessAsync(UInt32 offset, Byte *accessData, ByteCount sizeofAccess, void *someTypeofNotification, UInt32 typeOfRequest, ByteCount *replySize, MessageID *msgID);
  104.  
  105. /*
  106.     Test APIs or SPIs
  107. */
  108. extern pascal OSErr myInitUtil(void );
  109.  
  110. extern pascal SysPPtr myGetSysPPtr(void );
  111.  
  112. extern pascal OSErr myWriteParam(void );
  113.  
  114. extern pascal OSErr myWriteXPRAM(UInt32 offset, Byte *accessdata, ByteCount numberOfBytes);
  115.  
  116. extern pascal OSErr myReadXPRAM(UInt32 offset, Byte *accessdata, ByteCount numberOfBytes);
  117.  
  118. #endif
  119.  
  120. #if PRAGMA_ALIGN_SUPPORTED
  121. #pragma options align=reset
  122. #endif
  123.  
  124. #if PRAGMA_IMPORT_SUPPORTED
  125. #pragma import off
  126. #endif
  127.  
  128. #ifdef __cplusplus
  129. }
  130. #endif
  131.  
  132. #endif /* __NVRAM__ */
  133.  
  134.